table of contents
std::basic_string::operator[](3) | C++ Standard Libary | std::basic_string::operator[](3) |
NAME¶
std::basic_string::operator[] - std::basic_string::operator[]
Synopsis¶
CharT& operator[]( size_type pos ); (1) (constexpr
since C++20)
const CharT& operator[]( size_type pos ) const; (2) (constexpr
since C++20)
Returns a reference to the character at specified location pos if pos <
size(), or a
reference to CharT() if pos == size(). No bounds checking is performed.
If pos > size(), the behavior is undefined.
For overload (1), if pos == size(), the behavior is undefined
if the object referred by the returned reference is modified to any value
other than
CharT()
(since C++11).
Parameters¶
pos - position of the character to return
Return value¶
*(begin() + pos) if pos < size(), or a reference to CharT() if pos == size().
Complexity¶
Constant.
Example¶
// Run this code
#include <iostream>
#include <string>
int main()
{
const std::string e("Exemplar");
for (unsigned i = e.length() - 1; i != 0; i /= 2)
std::cout << e[i];
std::cout << '\n';
const char* c = &e[0];
std::cout << c << '\n'; // print as a C string
// Change the last character of s into a 'y'
std::string s("Exemplar ");
s[s.size() - 1] = 'y'; // equivalent to s.back() = 'y';
std::cout << s << '\n';
}
Output:¶
rmx
Exemplar
Exemplary
Defect reports
The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.
DR Applied to Behavior as published Correct behavior
LWG 259 C++98 non-const overload could return const lvalue changed to return
data()[pos], which was ill-formed *(begin() + pos)
if pos == size(), the behavior of modifying
LWG 2475 C++11 the well-defined if
object referred by the returned reference modified to CharT()
was undefined
See also¶
at accesses the specified character with bounds checking
(public member function)
front accesses the first character
(DR*) (public member function)
back accesses the last character
(DR*) (public member function)
operator[] accesses the specified character
(public member function of
std::basic_string_view<CharT,Traits>)
2024.06.10 | http://cppreference.com |